package com.linyaonan.leetcode.hard._1793;

/**
 *
 * 给你一个整数数组 nums （下标从 0 开始）和一个整数 k 。
 *
 * 一个子数组 (i, j) 的 分数 定义为 min(nums[i], nums[i+1], ..., nums[j]) * (j - i + 1) 。一个 好 子数组的两个端点下标需要满足 i <= k <= j 。
 *
 * 请你返回 好 子数组的最大可能 分数 。
 *
 *
 *
 * 示例 1：
 *
 * 输入：nums = [1,4,3,7,4,5], k = 3
 * 输出：15
 * 解释：最优子数组的左右端点下标是 (1, 5) ，分数为 min(4,3,7,4,5) * (5-1+1) = 3 * 5 = 15 。
 * 示例 2：
 *
 * 输入：nums = [5,5,4,5,4,1,1,1], k = 0
 * 输出：20
 * 解释：最优子数组的左右端点下标是 (0, 4) ，分数为 min(5,5,4,5,4) * (4-0+1) = 4 * 5 = 20 。
 *
 *
 * 提示：
 *
 * 1 <= nums.length <= 10^5
 * 1 <= nums[i] <= 2 * 10^4
 * 0 <= k < nums.length
 *
 * @author: Lin
 * @date: 2024/3/19
 */
public class MaximumScoreOfAGoodSubarray {

    /**
     * 题目的意思是必须要包括k索引的数值，那么数据范围为 0 ~ length-1 并且右指针必须大于等于k，左指针必须小于等k
     *
     * 3,4,5,6 假设从索引0开始向后分析，可以发现后面的数值都比3大（min不会变），并且跨度在不断变大，那么总大小在变大
     *
     * 与接雨水的题目类似，双指针均从索引=k开始，左指针向左，右指针向右，遇到比目前值大的直接进行扩大，如果遇到比
     *
     * @param nums
     * @param k
     * @return
     */
    public int maximumScore(int[] nums, int k) {
        return 1;
    }

}
